package com.test.test01.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.test.test01.bean.SystemJob;

public interface SystemJobService extends IService<SystemJob> {

    /**
     * 分页查询系统定时任务
     *
     * @param beanName   bean名称
     * @param methodName 方法名
     * @param jobStatus  任务状态
     * @param pageNo     页号
     * @param pageSize   页面大小
     * @return 系统定时任务
     */
    Page<SystemJob> pageSystemJob(String beanName, String methodName, Integer jobStatus, Integer pageNo, Integer pageSize);

    /**
     * 添加系统定时任务
     *
     * @param systemJob 系统定时任务
     */
    void addSystemJob(SystemJob systemJob);

    /**
     * 修改系统定时任务
     *
     * @param systemJob 系统定时任务
     */
    void modifySystemJob(SystemJob systemJob);


    /**
     * 移除系统定时任务
     *
     * @param id 任务ID
     */
    void removeSystemJob(Long id);

    /**
     * 修改定时任务状态
     *
     * @param id        任务ID
     * @param jobStatus 任务状态
     */
    void modifyJobStatus(Long id, Integer jobStatus);

    /**
     * 获取定时任务详情
     *
     * @param id 任务ID
     * @return 定时任务详情
     */
    SystemJob querySystemJob(Long id);

    /**
     * 立即执行
     *
     * @param beanName     bean名称
     * @param methodName   方法名
     * @param methodParams 方法参数
     */
    void immediatelyExecute(String beanName, String methodName, String methodParams);
}
